home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / magic / i / rtd.i < prev    next >
Encoding:
Modula Implementation  |  1997-10-26  |  5.1 KB  |  154 lines

  1. (*----------------------------------------------------------------------*
  2.  *                                                                      *
  3.  *         MAGIC   Modula's  All purpose  GEM  Interface  Cadre         *
  4.  *                 ÿ         ÿ            ÿ    ÿ          ÿ             *
  5.  *----------------------------------------------------------------------*
  6.  * Version 3.30  02.02.1992     (C)90/91/92 by Peter Hellinger Software *
  7.  *----------------------------------------------------------------------*
  8.  *            Dieses Modul ist urheberrechtlich geschtzt.              *
  9.  *                                                                      *
  10.  * Die Ver”ffentlichung des Quelltextes oder Teilen daraus in schrift-  *
  11.  * licher Form, insbesondere in Zeitschriften, sowie die Verbreitung    *
  12.  * ber Public-Domain-H„ndler bedarf der ausdrcklichen schriftlichen   *
  13.  * Genehmigung des Autors!                                              *
  14.  *                                                                      *
  15.  * Der Autor gibt hiermit die ausdrckliche Erlaubnis, das Modul jeder- *
  16.  * zeit auch im Quelltext weiterzugegeben, sofern dessen Text und ins-  *
  17.  * besondere dieser Urheberrechts-Vermerk nicht ver„ndert wird, und     *
  18.  * durch die Weitergabe kein finanzieller Nutzen entsteht. Der Autor    *
  19.  * beh„lt sich das Recht vor, diese Erlaubnis jederzeit u. ohne Angaben *
  20.  * von Grnden zu widerrufen.                                           *
  21.  *----------------------------------------------------------------------*)
  22.  
  23. IMPLEMENTATION MODULE RTD;
  24.  
  25. (*----------------------------------------------------------------------*
  26.  * Int. Vers | Datum    | Name | Žnderung                               *
  27.  *-----------+----------+------+----------------------------------------*
  28.  *  3.00     | 18.01.92 |  Hp  |                                        *
  29.  *-----------+----------+------+----------------------------------------*)
  30.  
  31.  
  32.  
  33. (* IMPLEMENTATION FšR  >>> Megamax-Modula-2 <<< *)
  34. (*                                              *)
  35. (*$R-   Range-Checks                            *)
  36. (*$S-   Stack-Check                             *)
  37. (*                                              *)
  38. (*----------------------------------------------*)
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45. FROM MagicSys   IMPORT  Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
  46.                         Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
  47.                         Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
  48.                         sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET,
  49.                         CastToChar, CastToByte, CastToByteset, CastToInt,
  50.                         CastToCard, CastToBitset, CastToWord, CastToLInt,
  51.                         CastToLCard, CastToLBitset, CastToLWord, CastToAddr,
  52.                         TosVersion, Accessory, Basepage, SysHeader, TosDate;
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59. FROM MagicBIOS  IMPORT  Bconout, Bconstat, Bconin, CON, PRT, AUX;
  60. FROM MagicConvert IMPORT NumToStr;
  61. FROM MagicStrings IMPORT Assign;
  62.  
  63. CONST   cMaxIndent =    40;
  64.  
  65. VAR     indent, i:      sCARDINAL;
  66.         device:         sINTEGER;
  67.  
  68.  
  69. PROCEDURE write (string: ARRAY OF CHAR);
  70. VAR i: sCARDINAL;
  71.     ch: CHAR;
  72. BEGIN
  73.  FOR i:= 0 TO HIGH(string) DO
  74.   IF string[i] = 0C THEN  RETURN  END;
  75.   ch:= string[i];  Bconout (device, ch);
  76.  END;
  77. END write;
  78.  
  79. PROCEDURE writeLn;
  80. BEGIN
  81.  Bconout (device, 15C);  Bconout (device, 12C);
  82. END writeLn;
  83.  
  84. PROCEDURE writeIndent;
  85. VAR i: sCARDINAL;
  86. BEGIN
  87.  FOR i:= 0 TO indent DO  Bconout (device, ' ');  END;
  88. END writeIndent;
  89.  
  90. PROCEDURE Into (REF procedure: ARRAY OF CHAR);
  91. BEGIN
  92.  writeIndent;  write ("I: ");  write (procedure);  writeLn;
  93.  IF indent < cMaxIndent THEN INC(indent);  END;
  94. END Into;
  95.  
  96. PROCEDURE Leaving (REF procedure: ARRAY OF CHAR);
  97. BEGIN
  98.  IF indent > 0 THEN DEC(indent); END;
  99.  writeIndent;  write ("L: ");  write (procedure);  writeLn;
  100. END Leaving;
  101.  
  102. PROCEDURE Message (REF string: ARRAY OF CHAR);
  103. BEGIN
  104.  writeIndent;  write (string);  writeLn;
  105. END Message;
  106.  
  107. PROCEDURE Write (REF msg, string: ARRAY OF CHAR);
  108. BEGIN
  109.  writeIndent;  write (msg);  write ('  ');  write (string);  writeLn;
  110. END Write;
  111.  
  112. VAR s: ARRAY [0..32] OF CHAR; 
  113.  
  114. PROCEDURE ShowVar (REF name: ARRAY OF CHAR; VAR value: ARRAY OF LOC);
  115. VAR wert: lCARDINAL;
  116. BEGIN
  117.  writeIndent;
  118.  write (name);
  119.  write(" = "); 
  120.  wert:= CastToLCard (value);
  121.  NumToStr(wert, 7, 10, FALSE, s);  write (s);  write ('  ');
  122.  NumToStr(wert, 8, 16, FALSE, s);  write (s);  write ('H ');
  123.  IF HIGH (value) = 0 THEN
  124.   NumToStr (CastToLCard (value[0]), 9, 2, FALSE, s);  write(s);
  125.   IF ( CastToChar(value[0]) >= ' ' ) THEN
  126.    write ("  <");  Bconout (device, CastToChar(value[0])); write ("> ");
  127.   END; 
  128.  END;
  129.  writeLn;
  130. END ShowVar;
  131.  
  132. PROCEDURE SetDevice(dev: DEVICE);
  133. BEGIN
  134.  CASE dev OF
  135.   printer: device:= PRT;|
  136.   rs232:   device:= AUX;|
  137.   console: device:= CON;|
  138.   ELSE     device:= CON;
  139.  END;
  140. END SetDevice;
  141.  
  142. PROCEDURE WaitKey;
  143. VAR d: LONGCARD;
  144. BEGIN
  145.  (* REPEAT UNTIL Bconstat (device); *)
  146.  d:= Bconin (device);
  147. END WaitKey; 
  148.  
  149. BEGIN
  150.  indent:= 0;
  151.  device:= CON;
  152. END RTD.
  153.  
  154.